//获取应用实例
const app = getApp();

const common = require('./../../../utils/common.js');

Page({
    data: {
        // 导航数据
        active_nav_index: 0,
        nav_list: [
            {name: '主要信息'},
            {name: '供应商类型'},
            {name: '联系方式'},
            {name: '财务信息'},
        ],
        // 表单数据
        formData: {
            supplierFullName: '', // 供应商全称
            supplierShortName: '', // 供应商简称
            supplierCodeName: '', // 供应商代码
            supplierStatus: '', // 供应商状态
            supplierCategory: '', // 供应商类别
            isEnable: 1, // 供应商是否启用
            primaryContact: '', // 主要联系人
            contactMobile: '', // 联系手机
            socialCreditCode: '', // 统一社会信用代码
            remarks: '', // 备注
            // 供应商类型
            typeVos: [
                {
                    cooperationStatus: "", // 合作状态
                    deleted: 0, // 删除状态 0-未删除 1-已删除
                    isEffective: 1, // 是否有效
                    isPatternMaking: false, // 是否打版
                    isSynergyType: 0, // 是否协同 0-否 1-是
                    settlementMethod: "", // 结算方式
                    settlementPoint: "", // 结算点
                    specifyType: 0, // 是否指定默认 0-是 1-否
                    supplierFirstType: "", // 供应商一级类型
                    supplierLevel: "", // 供应商等级
                    supplierSecondType: "", // 供应商二级类型
                    supplyChannels: "", // 供应商供货渠道
                    // 自定义字段 -----------------------
                    type_two_list: [], // 可选择的所有二级类型
                    supplierFirstTypeText: '请选择供应商一级类型', // 供应商一级类型名称
                    supplierSecondTypeText: '请选择供应商二级类型', // 供应商二级类型名称
                    supplyChannelsText: '请选择供货渠道', // 供应商供货渠道名称
                    settlementMethodText: '请选择结算方式', // 结算方式名称
                    cooperationStatusText: '请选择合作状态', // 合作状态名称
                    supplierLevelText: '请选择供应商等级', // 供应商等级名称
                    isSynergyTypeText: '请选择是否协同', // 是否协同名称
                    isEffectiveText: '请选择是否有效', // 是否启用名称
                    settlementPointText: '请选择结算点', // 结算点名称
                    isPatternMakingText: '请选择是否打版', // 是否打版名称
                    specifyTypeText: '请选择是否指定', // 是否指定默认名称
                },
            ],
            // 供应商联系人
            mdSupplierContactInfoList: [
                {
                    addressDetail: "", // 详细地址
                    cityNode: [],
                    contactPerson: "", // 联系人
                    contactPhone: "", // 联系手机
                    contactType: "", // 类型
                    // id: "",
                    isDefault: 1, // 是否默认
                    isEnable: 1, // 是否启用
                    isEnableWarehouse: "否", // 是否启用委外仓
                    // supplierId: "",
                    // 自定义字段 ----------------------------------
                    contactTypeText: '请选择联系方式类型', // 联系方式类型名称
                    isEnableWarehouseBoole: false, // 是否启用委外仓布尔
                    isDefaultBoole: true, // 是否默认布尔
                    isEnableBoole: true, // 是否启用布尔
                    provinceText: '请选择省份', // 省份名称
                    city_list: [], // 城市列表
                    country_list: [], // 区县列表
                    cityText: '请选择城市',
                    countryText: '请选择县/区',
                }
            ],
            // 财务信息
            bankInfoVos: [
                {
                    accountName: "", // 户名
                    bankAccount: "", // 银行账号
                    bankCode: "", // 银行代码
                    bankName: "", // 银行名称
                    isDefault: 1, // 是否默认
                    openAccountCityNode: [], // 开户所在地区
                    openBank: "", // 支行名称
                    // 自定义字段 ----------------------------------
                    provinceText: '请选择省份', // 省份名称
                    city_list: [], // 城市列表
                    country_list: [], // 区县列表
                    cityText: '请选择城市',
                    countryText: '请选择县/区',
                    isDefaultBoole: true, // 是否默认布尔
                }
            ],
        },
        sel_text: {
            status_text: '请选择供应商状态',
            category_text: '请选择供应商类别',
            enable_text: '启用',
        },
        status_list: [], // 供应商状态
        category_list: [
            {label: '内部供应商', value: '1'},
            {label: '外部供应商', value: '2'},
        ],
        enable_list: [
            {label: '启用', value: 1},
            {label: '停用', value: 0},
        ],
        level_list: [], // 供应商等级
        settlement_list: [], // 供应商结算方式
        channel_list: [], // 供应商供货渠道
        // type_two_list: [], // 供应商二级类型
        type_one_list: [], // 供应商一级类型
        boolean_list: [
            {label: '是', value: 1},
            {label: '否', value: 0}
        ],
        settlement_point_list: [], // 结算点
        contact_type_list: [], // 供应商联系方式类型
        area_list: [], // 省市区
        // 提交相关
        submit_disabled: false,
        // 接收参数
        id: '',
    },

    onLoad: function (options) {
        // 设置标题
        wx.setNavigationBarTitle({
            title: '新增物料供应商'
        });
        if (options.id) {
            this.setData({
                id: options.id
            })
            wx.setNavigationBarTitle({
                title: '编辑物料供应商'
            });
        }
        // 获取全部数据
        this.get_all_data();
    },

    // 获取详情
    get_detail: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/mdSupplier/getMdSupplierInfo/' + __this.data.id, {}, true, 'GET');
        result.then(res => {
            console.log(res)
            let formData = res.data;
            // 重新组装数据
            // 供应商类别
            if (formData.supplierCategory != '') {
                // 在category_list中查找
                __this.data.sel_text.category_text = __this.data.category_list.find(item => item.value == formData.supplierCategory)?.label || '';
            }
            // 供应商状态
            if (formData.supplierStatus != '') {
                __this.data.sel_text.status_text = __this.data.status_list.find(item => item.value == formData.supplierStatus)?.label || '';
            }
            // 供应商启用状态
            if (formData.isEnable != '') {
                __this.data.sel_text.enable_text = __this.data.enable_list.find(item => item.value == formData.isEnable)?.label || '';
            }
            // 设置供应商类型的自定义字段
            formData.typeVos = formData.typeVos.map((item) => {
                item.supplierFirstTypeText = __this.data.type_one_list.find(item_one => item_one.value == item.supplierFirstType)?.label || '';
                item.type_two_list = __this.data.type_one_list.find(item_one => item_one.value == item.supplierFirstType)?.children || [];
                if (item.supplierSecondType != '') {
                    item.supplierSecondTypeText = item.type_two_list.find(item_two => item_two.value == item.supplierSecondType)?.label || '';
                }
                // 供货渠道
                item.supplyChannelsText = __this.data.channel_list.find(item_channel => item_channel.value == item.supplyChannels)?.label || '';
                item.settlementMethodText = __this.data.settlement_list.find(item_settlement => item_settlement.value == item.settlementMethod)?.label || '';
                item.cooperationStatusText = __this.data.status_list.find(item_status => item_status.value == item.cooperationStatus)?.label || '';
                item.supplierLevelText = __this.data.level_list.find(item_level => item_level.value == item.supplierLevel)?.label || '';
                item.isSynergyTypeText = item.isSynergyType == 1 ? '是' : '否';
                item.isEffectiveText = item.isEffective == 1 ? '是' : '否';
                item.settlementPointText = __this.data.settlement_point_list.find(item_point => item_point.value == item.settlementPoint)?.label || '';
                item.isPatternMakingText = item.isPatternMaking ? '是' : '否';
                item.specifyTypeText = item.specifyType == 1 ? '是' : '否';
                // 返出
                return item;
            })
            // 设置联系人里的自定义字段
            formData.mdSupplierContactInfoList = formData.mdSupplierContactInfoList.map((item) => {
                item.contactTypeText = __this.data.contact_type_list.find(item_type => item_type.value == item.contactType)?.label || '';
                item.isEnableWarehouseBoole = item.isEnableWarehouse == '是' ? true : false;
                item.isDefaultBoole = item.isDefault == 1 ? true : false;
                item.isEnableBoole = item.isEnable == 1 ? true : false;
                item.cityNode = JSON.parse(item.cityNode);
                // 省份
                if ((item.cityNode?.length || 0) > 0) {
                    item.provinceText = __this.data.area_list.find(item_province => item_province.value == item.cityNode[0])?.label || '';
                    item.city_list = __this.data.area_list.find(item_province => item_province.value == item.cityNode[0])?.children || [];
                    if (item.cityNode[1] != null) {
                        item.cityText = item.city_list.find(item_city => item_city.value == item.cityNode[1])?.label || '';
                        item.country_list = item.city_list.find(item_city => item_city.value == item.cityNode[1])?.children || [];
                        if (item.cityNode[2] != null) {
                            item.countryText = item.country_list.find(item_country => item_country.value == item.cityNode[2])?.label || '';
                        }
                    }
                }
                return item;
            })
            // 设置财务信息的自定义字段
            formData.bankInfoVos = formData.bankInfoVos.map((item) => {
                // 省份
                item.openAccountCityNode = JSON.parse(item.openAccountCityNode);
                if ((item.openAccountCityNode?.length || 0) > 0) {
                    item.provinceText = __this.data.area_list.find(item_province => item_province.value == item.openAccountCityNode[0])?.label || '';
                    item.city_list = __this.data.area_list.find(item_province => item_province.value == item.openAccountCityNode[0])?.children || [];
                    if (item.openAccountCityNode[1] != null) {
                        item.cityText = item.city_list.find(item_city => item_city.value == item.openAccountCityNode[1])?.label || '';
                        item.country_list = item.city_list.find(item_city => item_city.value == item.openAccountCityNode[1])?.children || [];
                        if (item.openAccountCityNode[2] != null) {
                            item.countryText = item.country_list.find(item_country => item_country.value == item.openAccountCityNode[2])?.label || '';
                        }
                    }
                }
                item.isDefaultBoole = item.isDefault == 1 ? true : false;
                return item;
            })
            console.log(formData)
            // 设置数据
            __this.setData({
                formData: formData,
                sel_text: __this.data.sel_text
            });
        });
    },

    // 提交表单
    formSubmit: function (e) {
        const __this = this;
        let formData = JSON.parse(JSON.stringify(this.data.formData));
        // 去除自定义字段
        formData.typeVos = formData.typeVos.map(item => {
            delete item.supplierFirstTypeText;
            delete item.supplierSecondTypeText;
            delete item.supplyChannelsText;
            delete item.type_two_list;
            delete item.settlementMethodText
            delete item.cooperationStatusText
            delete item.supplierLevelText
            delete item.isSynergyTypeText
            delete item.isEffectiveText
            delete item.settlementPointText
            delete item.isPatternMakingText
            delete item.specifyTypeText
            return item;
        })
        formData.bankInfoVos = formData.bankInfoVos.map(item => {
            delete item.provinceText;
            delete item.cityText;
            delete item.countryText;
            delete item.city_list;
            delete item.country_list;
            delete item.isDefaultBoole;
            return item;
        })
        formData.mdSupplierContactInfoList = formData.mdSupplierContactInfoList.map(item => {
            delete item.provinceText;
            delete item.cityText;
            delete item.countryText;
            delete item.city_list;
            delete item.country_list;
            delete item.contactTypeText
            delete item.isEnableWarehouseBoole
            delete item.isDefaultBoole
            delete item.isEnableBoole
            return item;
        })
        console.log(formData)
        __this.setData({
            submit_disabled: true
        })
        // 验证表单
        let tips_text = this.check_form_data();
        if (tips_text != '') {
            console.log(tips_text)
            wx.showToast({
                title: tips_text,
                icon: 'none',
                duration: 2000
            })
            __this.setData({
                submit_disabled: false
            })
            return false;
        }
        // 请求链接
        const req_url = __this.data.id != '' ? '/api/pdm/mdSupplier/updateMdSupplier' : '/api/pdm/mdSupplier/addMdSupplier';
        // 提交接口
        const result = common.request_api(req_url, formData).then(res => {
            console.log(res)
            // 重新加载列表页
            const eventChannel = __this.getOpenerEventChannel();
            eventChannel.emit('changeData', {});
            // 提示
            wx.showModal({
                title: '提示',
                content: '提交成功',
                complete() {
                    wx.navigateBack();
                }
            });
        }).finally(() => {
            __this.setData({
                submit_disabled: false
            })
        });
    },

    // 验证表单
    check_form_data: function () {
        const __this = this;
        const formData = this.data.formData;
        // 验证表单
        if (formData.typeVos.length == 0) {
            return '请填写供应商类型';
        }
        if (formData.mdSupplierContactInfoList.length == 0) {
            return '请添加供应商联系方式';
        }
        if (formData.bankInfoVos.length == 0) {
            return '请填写供应商财务信息';
        }
        if (formData.supplierFullName == '') {
            return '请填写供应商全称';
        }
        if (formData.supplierShortName == '') {
            return '请填写供应商简称';
        }
        if (formData.supplierStatus == '') {
            return '请选择供应商状态';
        }
        if (formData.supplierCategory == '') {
            return '请选择供应商类别';
        }
        if (formData.primaryContact == '') {
            return '请填写供应商主要联系人';
        }
        if (formData.contactMobile == '') {
            return '请填写供应商联系手机';
        }
        if (formData.socialCreditCode == '') {
            return '请填写供应商统一社会信用代码';
        }
        // 循环验证typeVos 里的参数
        for (let i = 0; i < formData.typeVos.length; i++) {
            let item = formData.typeVos[i];
            if (item.supplierFirstType == '') {
                return '供应商类型第' + (i + 1) + '条请选择供应商一级类型';
            }
            if (item.supplierSecondType == '') {
                return '供应商类型第' + (i + 1) + '条请选择供应商二级类型';
            }
            // 供货渠道
            if (item.supplyChannels == '') {
                return '供应商类型第' + (i + 1) + '条请选择供货渠道';
            }
            // 结算方式
            if (item.settlementMethod == '') {
                return '供应商类型第' + (i + 1) + '条请选择结算方式';
            }
            // 结算点
            if (item.settlementPoint == '') {
                return '供应商类型第' + (i + 1) + '条请选择结算点';
            }
            // 合作状态
            if (item.cooperationStatus == '') {
                return '供应商类型第' + (i + 1) + '条请选择合作状态';
            }
        }
        // 循环验证mdSupplierContactInfoList 里的参数
        for (let i = 0; i < formData.mdSupplierContactInfoList.length; i++) {
            let item = formData.mdSupplierContactInfoList[i];
            if (item.contactType == '') {
                return '供应商联系人第' + (i + 1) + '条请选择联系方式类型';
            }
            if (item.contactPerson == '') {
                return '供应商联系人第' + (i + 1) + '条请填写联系人姓名';
            }
            if (item.contactPhone == '') {
                return '供应商联系人第' + (i + 1) + '条请填写联系人手机';
            }
            if (item.cityNode.length == 0) {
                return '供应商联系人第' + (i + 1) + '条请选择省市区';
            }
            if (item.addressDetail == '') {
                return '供应商联系人第' + (i + 1) + '条请填写详细地址';
            }
        }
        // 循环验证bankInfoVos 里的参数
        for (let i = 0; i < formData.bankInfoVos.length; i++) {
            let item = formData.bankInfoVos[i];
            if (item.bankName == '') {
                return '供应商财务信息第' + (i + 1) + '条请填写银行名称';
            }
            if (item.bankCode == '') {
                return '供应商财务信息第' + (i + 1) + '条请填写银行代码';
            }
            if (item.openBank == '') {
                return '供应商财务信息第' + (i + 1) + '条请填写开户行';
            }
            if (item.openAccountCityNode.length == 0) {
                return '供应商财务信息第' + (i + 1) + '条请选择开户所在地';
            }
            if (item.accountName == '') {
                return '供应商财务信息第' + (i + 1) + '条请填写户名';
            }
            if (item.bankAccount == '') {
                return '供应商财务信息第' + (i + 1) + '条请填写账号';
            }
        }
        // 验证通过
        return '';
    },

    // 输入框改变
    formInputChange(e) {
        const {field} = e.currentTarget.dataset
        this.setData({
            [`formData.${field}`]: e.detail.value.trim()
        });
    },

    // 联系人输入框改变
    formInputChange2(e) {
        const {field, index} = e.currentTarget.dataset
        this.setData({
            [`formData.mdSupplierContactInfoList[${index}].${field}`]: e.detail.value.trim()
        });
    },

    // 财务信息输入框改变
    formInputChange3(e) {
        const {field, index} = e.currentTarget.dataset
        this.setData({
            [`formData.bankInfoVos[${index}].${field}`]: e.detail.value.trim()
        });
    },

    // 获取供应商状态数据字典
    cooperationStatus: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/cooperationStatus', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                status_list: res.data
            })
        });
        return result;
    },

    // 获取供应商等级数据字典
    supplierLevel: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/supplierLevel', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                level_list: res.data
            })
        });
        return result;
    },

    // 获取供应商结算方式
    settlementMethod: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/settlementMethod', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                settlement_list: res.data
            })
        });
        return result;
    },

    // 获取供应商供货渠道
    supplyChannel: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/supplyChannel', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                channel_list: res.data
            })
        });
        return result;
    },

    // 获取供应商一级类型
    supplierType: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/commonDictionary/queryCommonDictionaryParent/supplierType', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                type_one_list: res.data
            })
        });
        return result;
    },

    // 获取供应商二级类型
    queryCommonDictionaryByValue: function (one_vaue, data_index) {
        const __this = this;
        const result = common.request_api('/api/pdm/commonDictionary/queryCommonDictionaryByValue', {
            groupIdentification: "supplierType",
            value: one_vaue
        }, false, 'POST');
        result.then(res => {
            __this.setData({
                [`formData.typeVos[` + data_index + `].type_two_list`]: res.data,
                [`formData.typeVos[` + data_index + `].supplierSecondType`]: '',
                [`formData.typeVos[` + data_index + `].supplierSecondTypeText`]: '请选择供应商二级类型'
            })
        });
        return result;
    },

    // 获取结算点
    settlementPoint: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/settlementPoint', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                settlement_point_list: res.data
            })
        });
        return result;
    },

    // 获取联系方式类型
    contactType: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/contactType', {}, false, 'GET');
        result.then(res => {
            __this.setData({
                contact_type_list: res.data
            })
        });
        return result;
    },

    // 获取地区
    areaList: function () {
        const __this = this;
        const result = common.request_api('/api/pdm/baseDictionary/queryByGroupIdentification/area', {}, false, 'GET');
        result.then(res => {
            // 找出所有省份 parentId = 0 的列表
            let province_list = res.data.filter(item => item.parentId === '0');
            province_list.forEach(item => {
                // 找出所有城市 parentId = 省份id 的列表
                let city_list = res.data.filter(item2 => item2.parentId === item.value);
                city_list.forEach(item2 => {
                    // 找出所有县 parentId = 城市id 的列表
                    item2.children = res.data.filter(item3 => item3.parentId === item2.value);
                });
                // 把城市列表添加到省份列表
                item.children = city_list;
            });
            // console.log(province_list);
            __this.setData({
                area_list: province_list
            })
        });
        return result;
    },

    // 获取供应商二级类型
    queryCommonDictionaryByValue2: function (one_vaue, index) {
        const __this = this;
        const result = common.request_api('/api/pdm/commonDictionary/queryCommonDictionaryByValue', {
            groupIdentification: "supplierType",
            value: one_vaue
        }, false, 'POST');
        result.then(res => {
            // 将结果追加到对应一级分类的children中
            __this.data.type_one_list[index].children = res.data;
            __this.setData({
                type_one_list: __this.data.type_one_list
            })
        });
        return result;
    },

    // 发起全部请求
    get_all_data: function () {
        const __this = this;
        let req_arr = [];
        // 获取供应商状态数据字典
        req_arr.push(this.cooperationStatus());
        // 获取供应商等级数据字典
        req_arr.push(this.supplierLevel());
        // 获取供应商结算方式
        req_arr.push(this.settlementMethod());
        // 获取供应商供货渠道
        req_arr.push(this.supplyChannel());
        // 获取供应商一级类型
        req_arr.push(this.supplierType());
        // // 获取供应商二级类型
        // req_arr.push(this.queryCommonDictionaryByValue());
        // 获取结算点
        req_arr.push(this.settlementPoint());
        // 获取联系方式
        req_arr.push(this.contactType());
        // 获取省市区
        req_arr.push(this.areaList());
        // 请求
        Promise.all(req_arr).then(res => {
            console.log(res)
            let new_req_arr = [];
            __this.data.type_one_list.forEach((item, index) => {
                new_req_arr.push(__this.queryCommonDictionaryByValue2(item.value, index))
            })
            // 获取其它数据
            Promise.all(new_req_arr).then(res => {
                console.log(__this.data.type_one_list)
                // 编辑时获取详情
                if (__this.data.id != '') {
                    __this.get_detail();
                }
            }).finally(() => {
                
            })
        }).catch(error => {
            console.log(error);
        });
    },

    // 点击菜单栏时
    change_nav: function (events) {
        const index = events.currentTarget.dataset.index;
        this.setData({
            active_nav_index: index,
        });
    },

    // 状态改变时
    statusChange: function (events) {
        const index = events.detail.value;
        this.setData({
            [`sel_text.status_text`]: this.data.status_list[index].label,
            [`formData.supplierStatus`]: this.data.status_list[index].value,
        })
    },

    // 类别改变时
    categoryChange: function (events) {
        const index = events.detail.value;
        this.setData({
            [`sel_text.category_text`]: this.data.category_list[index].label,
            [`formData.supplierCategory`]: this.data.category_list[index].value,
        })
    },

    // 启用改变时
    enableChange: function (events) {
        const index = events.detail.value;
        this.setData({
            [`sel_text.enable_text`]: this.data.enable_list[index].label,
            [`formData.isEnable`]: this.data.enable_list[index].value,
        })
    },

    // 供应商一级类型改变时
    supplierFirstTypeChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].supplierFirstType`]: this.data.type_one_list[index].value,
            [`formData.typeVos[` + data_index + `].supplierFirstTypeText`]: this.data.type_one_list[index].label,
        })
        // 获取二级类型
        this.queryCommonDictionaryByValue(this.data.type_one_list[index].value, data_index);
    },

    // 供应商二级类型改变时
    supplierSecondTypeChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].supplierSecondType`]: this.data.formData.typeVos[data_index].type_two_list[index].value,
            [`formData.typeVos[` + data_index + `].supplierSecondTypeText`]: this.data.formData.typeVos[data_index].type_two_list[index].label,
        })
    },

    // 供应商供货渠道改变时
    supplyChannelsChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].supplyChannels`]: this.data.channel_list[index].value,
            [`formData.typeVos[` + data_index + `].supplyChannelsText`]: this.data.channel_list[index].label,
        })
    },

    // 结算方式改变时
    settlementMethodChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].settlementMethod`]: this.data.settlement_list[index].value,
            [`formData.typeVos[` + data_index + `].settlementMethodText`]: this.data.settlement_list[index].label,
        })
    },

    // 合作状态改变时
    cooperationStatusChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].cooperationStatus`]: this.data.status_list[index].value,
            [`formData.typeVos[` + data_index + `].cooperationStatusText`]: this.data.status_list[index].label,
        })
    },

    // 供应商等级改变时
    supplierLevelChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].supplierLevel`]: this.data.level_list[index].value,
            [`formData.typeVos[` + data_index + `].supplierLevelText`]: this.data.level_list[index].label,
        })
    },

    // 是否协同改时
    isSynergyTypeChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].isSynergyType`]: this.data.boolean_list[index].value,
            [`formData.typeVos[` + data_index + `].isSynergyTypeText`]: this.data.boolean_list[index].label,
        })
    },

    // 是否有效改变时
    isEffectiveChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].isEffective`]: this.data.boolean_list[index].value,
            [`formData.typeVos[` + data_index + `].isEffectiveText`]: this.data.boolean_list[index].label,
        })
    },

    // 结算点改变时
    settlementPointChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].settlementPoint`]: this.data.settlement_point_list[index].value,
            [`formData.typeVos[` + data_index + `].settlementPointText`]: this.data.settlement_point_list[index].label,
        })
    },

    //  是否打版
    isPatternMakingChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].isPatternMaking`]: this.data.boolean_list[index].value == 1,
            [`formData.typeVos[` + data_index + `].isPatternMakingText`]: this.data.boolean_list[index].label,
        })
    },

    // 是否指定改变时
    specifyTypeChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.typeVos[` + data_index + `].specifyType`]: this.data.boolean_list[index].value,
            [`formData.typeVos[` + data_index + `].specifyTypeText`]: this.data.boolean_list[index].label,
        })
    },

    // 添加供应商类型行
    addTypeRow: function () {
        this.data.formData.typeVos.push({
            cooperationStatus: "", // 合作状态
            deleted: 0, // 删除状态 0-未删除 1-已删除
            isEffective: 1, // 是否有效
            isPatternMaking: false, // 是否打版
            isSynergyType: 0, // 是否协同 0-否 1-是
            settlementMethod: "", // 结算方式
            settlementPoint: "", // 结算点
            specifyType: 0, // 是否指定默认 0-是 1-否
            supplierFirstType: "", // 供应商一级类型
            supplierLevel: "", // 供应商等级
            supplierSecondType: "", // 供应商二级类型
            supplyChannels: "", // 供应商供货渠道
            // 自定义字段 -----------------------
            type_two_list: [], // 可选择的所有二级类型
            supplierFirstTypeText: '请选择供应商一级类型', // 供应商一级类型名称
            supplierSecondTypeText: '请选择供应商二级类型', // 供应商二级类型名称
            supplyChannelsText: '请选择供货渠道', // 供应商供货渠道名称
            settlementMethodText: '请选择结算方式', // 结算方式名称
            cooperationStatusText: '请选择合作状态', // 合作状态名称
            supplierLevelText: '请选择供应商等级', // 供应商等级名称
            isSynergyTypeText: '请选择是否协同', // 是否协同名称
            isEffectiveText: '请选择是否有效', // 是否启用名称
            settlementPointText: '请选择结算点', // 结算点名称
            isPatternMakingText: '请选择是否打版', // 是否打版名称
            specifyTypeText: '请选择是否指定', // 是否指定默认名称
        })
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '添加成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 删除供应商类型行
    delTypeRow: function (events) {
        // 如果只有一行则不允许删除
        if (this.data.formData.typeVos.length <= 1) {
            // 提示
            wx.showToast({
                title: '至少保留一行',
                icon: 'none',
                duration: 2000
            })
            return;
        }
        const index = events.currentTarget.dataset.index;
        this.data.formData.typeVos.splice(index, 1);
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '删除成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 复制供应商类型行
    copyTypeRow: function (events) {
        const index = events.currentTarget.dataset.index;
        const type_vos = this.data.formData.typeVos[index];
        this.data.formData.typeVos.push(JSON.parse(JSON.stringify(type_vos))); // 防引用传值
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '复制成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 联系人类型改时
    contactTypeChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].contactType`]: this.data.contact_type_list[index].value,
            [`formData.mdSupplierContactInfoList[` + data_index + `].contactTypeText`]: this.data.contact_type_list[index].label,
        })
    },

    // 省份改变时
    provinceChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.area_list.length <= 0) {
            return;
        }
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].cityNode`]: [this.data.area_list[index].value],
            [`formData.mdSupplierContactInfoList[` + data_index + `].provinceText`]: this.data.area_list[index].label,
            [`formData.mdSupplierContactInfoList[` + data_index + `].city_list`]: this.data.area_list[index].children,
            [`formData.mdSupplierContactInfoList[` + data_index + `].country_list`]: [],
            [`formData.mdSupplierContactInfoList[` + data_index + `].cityText`]: '请选择城市',
            [`formData.mdSupplierContactInfoList[` + data_index + `].countryText`]: '请选择区/县',
        })
    },

    // 城市改变时
    cityChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.formData.mdSupplierContactInfoList[data_index].city_list.length <= 0) {
            return;
        }
        this.data.formData.mdSupplierContactInfoList[data_index].cityNode[1] = this.data.formData.mdSupplierContactInfoList[data_index].city_list[index].value;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].cityNode`]: this.data.formData.mdSupplierContactInfoList[data_index].cityNode,
            [`formData.mdSupplierContactInfoList[` + data_index + `].cityText`]: this.data.formData.mdSupplierContactInfoList[data_index].city_list[index].label,
            [`formData.mdSupplierContactInfoList[` + data_index + `].country_list`]: this.data.formData.mdSupplierContactInfoList[data_index].city_list[index].children,
            [`formData.mdSupplierContactInfoList[` + data_index + `].countryText`]: '请选择区/县',
        })
    },

    // 区县改变时
    countryChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.formData.mdSupplierContactInfoList[data_index].country_list.length <= 0) {
            return;
        }
        this.data.formData.mdSupplierContactInfoList[data_index].cityNode[2] = this.data.formData.mdSupplierContactInfoList[data_index].country_list[index].value;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].cityNode`]: this.data.formData.mdSupplierContactInfoList[data_index].cityNode,
            [`formData.mdSupplierContactInfoList[` + data_index + `].countryText`]: this.data.formData.mdSupplierContactInfoList[data_index].country_list[index].label,
        })
    },

    // 是否启用委外仓改变时
    isEnableWarehouseChange: function (events) {
        const bool_value = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].isEnableWarehouse`]: bool_value ? '是' : '否',
            [`formData.mdSupplierContactInfoList[` + data_index + `].isEnableWarehouseBoole`]: bool_value,
        })
    },

    // 是否默认改变时
    isDefaultChange: function (events) {
        const bool_value = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].isDefault`]: bool_value ? 1 : 0,
            [`formData.mdSupplierContactInfoList[` + data_index + `].isDefaultBoole`]: bool_value,
        })
    },

    // 是否启用改变时
    isEnableChange: function (events) {
        const bool_value = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.mdSupplierContactInfoList[` + data_index + `].isEnable`]: bool_value ? 1 : 0,
            [`formData.mdSupplierContactInfoList[` + data_index + `].isEnableBoole`]: bool_value,
        })
    },

    // 复制联系人行
    copyContactRow: function (events) {
        const index = events.currentTarget.dataset.index;
        const contact_vos = this.data.formData.mdSupplierContactInfoList[index];
        console.log(contact_vos)
        this.data.formData.mdSupplierContactInfoList.push(JSON.parse(JSON.stringify(contact_vos)));
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '复制成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 删除联系人行
    delContactRow: function (events) {
        // 如果只有一行则不允许删除
        if (this.data.formData.mdSupplierContactInfoList.length <= 1) {
            // 提示
            wx.showToast({
                title: '至少保留一行',
                icon: 'none',
                duration: 2000
            })
            return;
        }
        const index = events.currentTarget.dataset.index;
        this.data.formData.mdSupplierContactInfoList.splice(index, 1);
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '删除成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 添加联系人行
    addContactRow: function (events) {
        this.data.formData.mdSupplierContactInfoList.push({
            addressDetail: "", // 详细地址
            cityNode: [],
            contactPerson: "", // 联系人
            contactPhone: "", // 联系手机
            contactType: "", // 类型
            // id: "",
            isDefault: 1, // 是否默认
            isEnable: 1, // 是否启用
            isEnableWarehouse: "否", // 是否启用委外仓
            // supplierId: "",
            // 自定义字段 ----------------------------------
            contactTypeText: '请选择联系方式类型', // 联系方式类型名称
            isEnableWarehouseBoole: false, // 是否启用委外仓布尔
            isDefaultBoole: true, // 是否默认布尔
            isEnableBoole: true, // 是否启用布尔
            provinceText: '请选择省份', // 省份名称
            city_list: [], // 城市列表
            country_list: [], // 区县列表
            cityText: '请选择城市',
            countryText: '请选择县/区',
        })
        this.setData({
            formData: this.data.formData,
        })
    },

    // 银行省份改变时
    provinceBankChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.area_list.length == 0) {
            return;
        }
        this.setData({
            [`formData.bankInfoVos[` + data_index + `].openAccountCityNode`]: [this.data.area_list[index].value],
            [`formData.bankInfoVos[` + data_index + `].provinceText`]: this.data.area_list[index].label,
            [`formData.bankInfoVos[` + data_index + `].city_list`]: this.data.area_list[index].children,
            [`formData.bankInfoVos[` + data_index + `].country_list`]: [],
            [`formData.bankInfoVos[` + data_index + `].cityText`]: '请选择城市',
            [`formData.bankInfoVos[` + data_index + `].countryText`]: '请选择区/县',
        })
    },

    // 城市改变时
    cityBankChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.formData.bankInfoVos[data_index].city_list.length == 0) {
            return;
        }
        this.data.formData.bankInfoVos[data_index].openAccountCityNode[1] = this.data.formData.bankInfoVos[data_index].city_list[index].value;
        this.setData({
            [`formData.bankInfoVos[` + data_index + `].openAccountCityNode`]: this.data.formData.bankInfoVos[data_index].openAccountCityNode,
            [`formData.bankInfoVos[` + data_index + `].cityText`]: this.data.formData.bankInfoVos[data_index].city_list[index].label,
            [`formData.bankInfoVos[` + data_index + `].country_list`]: this.data.formData.bankInfoVos[data_index].city_list[index].children,
            [`formData.bankInfoVos[` + data_index + `].countryText`]: '请选择区/县',
        })
    },

    // 区县改变时
    countryBankChange: function (events) {
        const index = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        if (this.data.formData.bankInfoVos[data_index].country_list.length == 0) {
            return;
        }
        this.data.formData.bankInfoVos[data_index].openAccountCityNode[2] = this.data.formData.bankInfoVos[data_index].country_list[index].value;
        this.setData({
            [`formData.bankInfoVos[` + data_index + `].openAccountCityNode`]: this.data.formData.bankInfoVos[data_index].openAccountCityNode,
            [`formData.bankInfoVos[` + data_index + `].countryText`]: this.data.formData.bankInfoVos[data_index].country_list[index].label,
        })
    },

    // 银行默认改变时
    isDefaultBankChange: function (events) {
        const bool_value = events.detail.value;
        const data_index = events.currentTarget.dataset.index;
        this.setData({
            [`formData.bankInfoVos[` + data_index + `].isDefault`]: bool_value ? 1 : 0,
            [`formData.bankInfoVos[` + data_index + `].isDefaultBoole`]: bool_value,
        })
    },

    // 复制银行行
    copyBankRow: function (events) {
        const index = events.currentTarget.dataset.index;
        const bank_vos = this.data.formData.bankInfoVos[index];
        this.data.formData.bankInfoVos.push(JSON.parse(JSON.stringify(bank_vos))); // 防引用传值
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '复制成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 删除联系人行
    delBankRow: function (events) {
        // 如果只有一行则不允许删除
        if (this.data.formData.bankInfoVos.length <= 1) {
            // 提示
            wx.showToast({
                title: '至少保留一行',
                icon: 'none',
                duration: 2000
            })
            return;
        }
        const index = events.currentTarget.dataset.index;
        this.data.formData.bankInfoVos.splice(index, 1);
        this.setData({
            formData: this.data.formData,
        })
        // 提示
        wx.showToast({
            title: '删除成功',
            icon: 'none',
            duration: 2000
        })
    },

    // 银行行添加
    addBankRow: function (events) {
        this.data.formData.bankInfoVos.push({
            accountName: "", // 户名
            bankAccount: "", // 银行账号
            bankCode: "", // 银行代码
            bankName: "", // 银行名称
            isDefault: 1, // 是否默认
            openAccountCityNode: [], // 开户所在地区
            openBank: "", // 支行名称
            // 自定义字段 ----------------------------------
            provinceText: '请选择省份', // 省份名称
            city_list: [], // 城市列表
            country_list: [], // 区县列表
            cityText: '请选择城市',
            countryText: '请选择县/区',
            isDefaultBoole: true, // 是否默认布尔
        })
        this.setData({
            formData: this.data.formData,
        })
        wx.showToast({
            title: '添加成功',
            icon: 'none',
            duration: 2000
        })
    },


})
